package org.springblade.app.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.app.entity.AppInfoEntity;
import org.springblade.app.entity.AppUserEntity;
import org.springblade.app.vo.AppUserVO;

import java.util.List;
import java.util.Map;

/**
 * 应用成员表 Mapper 接口
 *
 * @author Chill
 */
public interface AppUserMapper extends BaseMapper<AppUserEntity> {

	/**
	 * 当前应用的成员列表
	 * @param appId 应用id
	 * @return
	 */
    List<AppUserVO> listUser(@Param("appId") String appId);

	IPage<AppUserVO> pageUser(IPage<AppUserVO> appUserVOIPage, @Param("appId") String appId);

	/**
	 * 当前应用的部门列表
	 * @param appId 应用id
	 * @return
	 */
	List<AppUserVO> listDept(@Param("appId") String appId);
	IPage<AppUserVO> pageDept(IPage<AppUserVO> appUserVOIPage, @Param("appId") String appId);

	/**
	 * 获取用户关联的应用列表
	 * @param userIds 用户id集合
	 * @return
	 */
	List<AppInfoEntity> listByUsers(List<Long> userIds);

	/**
	 * 获取部门关联的应用列表
	 * @param deptIds 部门id集合
	 * @return
	 */
	List<AppInfoEntity> listByDepts(List<Long> deptIds);
}
